package aiku.numericalcontroloa.Model.Dto.OrderManagement;

import aiku.numericalcontroloa.Model.Dto.PageSelect;
import aiku.numericalcontroloa.Model.Entity.OrderManagement.OrderGoods;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * @Author 黄广庭
 * @Date 2024/3/18 17:35
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class OrderDto extends PageSelect {
    private String id;

    private String sn; // 订单流水号

    private String clientsId; // 客户id

    private String name; // 客户名

    private String clientsIdCard; // 客户身份证号

    private String copyOfIdCard; // 客户身份证复印件（图片）

    private String userId; // 业务员id

    private String goodsId; // 产品id

    private Float goodsCount; // 产品数量

    private BigDecimal transactionAmount; // 总金额

    private BigDecimal deposit; // 定金

    private BigDecimal downPayment;

    private LocalDate deliveryTime; // 交货时间

    private Integer orderType; // 订单类型（1零售，2批发签合同）

    private String orderApprovalFlowId; // 下单审批id

    private String paymentApprovalFlowId; // 收款审批id

    private Integer paymentMethod; // 支付方式（0全款，1分一期，...）

    private Integer paymentType; // 支付类型（0先付后发，1先发后付）

    private Integer status; // 订单状态（0未付款，1已付款，2欠款）

    private String receipt; // 验收单（图片）

    private String logisticsInformation; // 物流信息

    private String contract; // 签订合同/开销单

    private String orderBillingId; // 订单账单合同

    private String afterSaleId; // 售后员id

    /**
     * 签订地点
     */
    private String place;

    /**
     * 还款截止时间
     */
    private LocalDate deadline;

    /**
     * 收款账户
     */
    private String account;

    /**
     * 产品列表
     */
    private List<OrderGoods> goodsList;

    /**
     * 备注
     */
    private String remark;

    private String orderApprovalFlowIdType;

    private String paymentApprovalFlowIdType;

    private String collectedType;

}
